Systems and methods for determining or modifying a temperature program based on occupant activity

ABSTRACT

The present disclosure relates to thermostatically controlling a HVAC system according to a temperature program that is at least partially responsive to observed or predicted changes in the type or degree of occupant activity. For example, a thermostat may process collected occupant activity data in conjunction a temperature program to identify a particular temperature setpoint that is associated with a statistically detectable change between a first and a second type or degree of occupant activity. During a time window that includes the identified temperature setpoint, if the thermostat detects the change between the first and the second type or degree of occupant activity in the occupant activity data, the thermostat may responsively implement the temperature associated with the identified temperature setpoint, regardless of whether the current time is prior to, the same as, or subsequent to the time associated with the identified temperature setpoint.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 61/917,529, entitled “SYSTEMS AND METHODS FOR DETERMINING OR MODIFYING A TEMPERATURE PROGRAM BASED ON OCCUPANT ACTIVITY,” filed Dec. 18, 2013, which is herein incorporated by reference in its entirety for all purposes.

BACKGROUND

The present disclosure relates generally to heating, ventilation, and cooling (HVAC) systems that are communicatively coupled to, and controlled by, programmable thermostats. Such programmable thermostats generally include a memory that stores instructions, as well as a processor that executes the stored instructions, in which the instructions dictate suitable control signals that should be supplied to the HVAC system to implement a particular temperature program. More specifically, the present disclosure relates to temporarily or permanently modifying a time-based temperature program of a programmable thermostat based on changes in the type or degree of observed or anticipated occupant activity. Additionally, the present disclosure relates to determining and implementing an activity-based temperature program that a programmable thermostat may use to control a HVAC system based on a type or degree of observed or anticipated occupant activity, rather than according to a time-based schedule.

This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

Thermostatically controlled HVAC systems are ubiquitous in both residential and commercial structures. Classical non-programmable thermostats generally allow a user to specify a single setpoint temperature, for example, using a dial of an analog thermostat or the pushbuttons of a digital thermostat. In operation, the thermostat controls the HVAC system in a manner that maintains the current ambient temperature within a predetermined maintenance band around the setpoint temperature. This maintenance band usually includes a lower maintenance band temperature equal to the setpoint temperature minus about one degree Fahrenheit and an upper maintenance band temperature equal to the setpoint temperature plus about one degree Fahrenheit. In a heating mode of operation, the thermostat may activate the HVAC system heating function to heat the structure when the ambient temperature falls below the lower maintenance band temperature, and then may deactivate the HVAC system heating function once the ambient temperature rises above the upper maintenance band temperature. In a cooling mode of operation, the thermostat may activate the HVAC system cooling function to cool the structure when the ambient temperature rises above the upper maintenance band temperature, and then may deactivate the HVAC system cooling function once the ambient temperature falls below the lower maintenance band temperature.

Certain programmable digital thermostats may include a clock element and may provide an interface to enable a user to provide a particular schedule for operating the HVAC system. For example, certain programmable digital thermostats may allow a user to specify temperature settings directed more toward occupant comfort during certain parts of the day (e.g., between 7:00 AM-9:00 AM and between 5:00 PM-10:00 PM), and to specify temperature settings directed more toward energy savings during other parts of the day (e.g., between 9:00 AM-5:00 PM and 10:00 PM-7:00 AM). By way of example, such a programmable digital thermostat may allow a user to specify, for the winter season, a heat setpoint temperature of 75 degrees Fahrenheit (° F.) between 7:00 AM-9:00 AM (e.g., for greater occupant comfort while the occupant gets out of bed and gets ready for work), a heat setpoint temperature of 62° F. between 9:00 AM-5:00 PM (e.g., for greater energy savings while the occupant is away at work), a heat setpoint temperature of 73° F. between 5:00 PM-10:00 PM (e.g., for greater occupant comfort as the occupant is at home during the evening), and a heat setpoint temperature of 66° F. between 10:00 PM-7:00 AM (e.g., for greater energy savings while the occupant is asleep).

Additionally, HVAC systems may be generally responsible for a substantial portion of the power consumption of a residential or commercial structure, especially in locales with extreme hot or cool environments. In certain situations, this power consumption may be further exacerbated when an occupant persistently adjusts the thermostat based on his or her perception of the internal temperature of the structure. Accordingly, it may be desirable to reduce an amount of time that the HVAC system is actively heating or cooling the structure in order to reduce power consumption of the HVAC system while still addressing the temperature preferences of the occupant.

SUMMARY

Certain embodiments commensurate in scope with the originally claimed subject matter are summarized below. These embodiments are not intended to limit the scope of the claimed invention, but rather these embodiments are intended only to provide a brief summary of possible forms of the invention. Indeed, the present disclosure may encompass a variety of forms that may be similar to or different from the embodiments set forth below.

Present embodiments are directed toward systems and methods for thermostatically controlling a heating, ventilation, and cooling (HVAC) system of a structure according to a temperature program. More specifically, present embodiment enable the creation or modification of a temperature program based on types or degrees of occupant activity. In certain embodiments, the temperature program may be a temperature setpoint schedule, while in other embodiments the temperature program may be an occupant activity-based temperature program or a hybrid temperature program having both time-based and activity-based temperature setpoints. Accordingly, present embodiments enable the collection occupant activity data that is indicative of types or degrees of occupant activity in the structure based on inputs from sensors installed within the structure, activities of various devices within the structure, and/or occupant information gleaned from a processing device (e.g., a computer or smart phone) and/or online data resources.

In certain embodiments, a processor of a thermostat may control a HVAC system according to temperature program that includes a number of time-based temperature setpoints. As such, the processor may process collected occupant activity data in conjunction with the temperature setpoints to identify a particular temperature setpoint that is associated with a statistically detectable change between a first type or degree of occupant activity and a second type or degree of occupant activity. Accordingly, during a time window that includes (e.g., extends before, extends after, or both) the time associated with the identified temperature setpoint, if the processor detects the change between the first type or degree of occupant activity and the second type or degree of occupant activity in the occupant activity data, the processor may responsively implement the temperature associated with the temperature setpoint, regardless of whether the current time is prior to, the same as, or subsequent to the time associated with the temperature setpoint. Further, in certain embodiments, once the processor has responsively implemented the temperature associated with the identified temperature setpoint at a different time on more than one day (e.g., two, three, or four days), the processor may modify the identified temperature setpoint to be associated with the different time (i.e., permanently modify the temperature program).

In certain embodiments, a processor of a thermostat may control a HVAC system according to a temperature program that includes a plurality of time-based temperature setpoints. Further, the processor may divide a period of time (e.g., a day, a week) into a number of time windows that each begin at an occurrence of a statistically different occupant activity type or degree in the occupant activity data. Accordingly, the processor may process the occupant activity data in conjunction with the temperature setpoints to identify a temperature setpoint that has an associated time that falls within an associated time window. Accordingly, during the associated time window, when the processor detects a change from a first type or degree of occupant activity to a statistically different second type or degree of occupant activity in the occupant activity data, the processor may responsively implement the temperature associated with the identified temperature setpoint regardless of whether the current time is prior to, the same as, or subsequent to the time associated with the identified temperature setpoint.

In certain embodiments, a processor of a thermostat may control a HVAC system according to temperature program that includes a plurality of occupant activity-based temperature setpoints. For example, each occupant activity-based temperature setpoint may be associated with both a temperature and a change between a first type or degree of occupant activity and a statistically different second type or degree of occupant activity. While collecting occupant activity data describing occupant activity types or degrees, the processor may detect the change from the first type or degree of occupant activity to the second type or degree of occupant activity. In response, the processor may implement the temperature associated with the occupant activity-based temperature setpoint, regardless of the current time.

DRAWINGS

These and other features, aspects, and advantages of the present disclosure will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:

FIG. 1 is a schematic of a structure having a heating, ventilation, and cooling (HVAC) system, in accordance with an embodiment of the present approach;

FIG. 2 is a schematic of an embodiment of a HVAC system;

FIG. 3 is a diagram illustrating certain internal components and certain data inputs of a thermostat of the HVAC system, in accordance with an embodiment of the present approach;

FIG. 4 is a flow diagram illustrating an embodiment of a process whereby the thermostat may generate a time-based temperature program;

FIG. 5 is an embodiment of the time-based temperature program generated by the thermostat according to the process of FIG. 4;

FIG. 6 is a diagram illustrating an exception time window extending before a time associated with a particular temperature setpoint, in accordance with an embodiment of the present approach;

FIG. 7 is a diagram illustrating an exception time window extending after a time associated with a particular temperature setpoint, in accordance with an embodiment of the present approach;

FIG. 8 is a diagram illustrating a symmetrical exception time window extending an equal amount of time before and after a time associated with a particular temperature setpoint, in accordance with an embodiment of the present approach;

FIG. 9 is a diagram illustrating an unsymmetrical exception time window extending an unequal amount of time before and after a time associated with a particular temperature setpoint, in accordance with an embodiment of the present approach;

FIG. 10 is a diagram illustrating a statistical exception time window that enables different weights to be applied to different occupant activities occurring at different times before and after a time associated with a particular temperature setpoint, in accordance with an embodiment of the present approach;

FIG. 11 is a flow diagram illustrating an embodiment of a process whereby the thermostat may permanently modify a temperature setpoint schedule based on one or more exceptions to the temperature setpoint schedule;

FIG. 12 is a diagram illustrating an embodiment of an activity-based temperature program that is based on a level or occupant activity;

FIG. 13 is a flow diagram illustrating an embodiment of a process whereby the thermostat may receive inputs defining one or more occupant activities and generate an activity-based temperature program that is based on the defined occupant activities;

FIG. 14 is a diagram illustrating an embodiment of an activity-based temperature program that is based on defined occupant activities;

FIG. 15 is a flow diagram illustrating an embodiment of a process whereby the thermostat 16 may implement an activity-based temperature program;

FIG. 16 is a timeline of an example in which the thermostat implements an embodiment of an activity-based temperature program that is based on a level of occupant activity;

FIG. 17 is a timeline of an example in which the thermostat implements an embodiment of an activity-based temperature program that is based on defined occupant activities;

FIG. 18 is a timeline of an example in which the thermostat implements an embodiment of an time-based temperature program that includes exceptions that are based on occupant activity or occupant activity level; and

FIG. 19 is a timeline of an example in which the thermostat implements an embodiment of a hybrid temperature program that includes time-based temperature setpoints (with exceptions based on occupant activity) as well as activity-based temperature setpoints.

DETAILED DESCRIPTION

One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure. The subject matter of the instant disclosure is related to the subject matter of the following commonly assigned applications, each of which is incorporated by reference herein: U.S. Ser. No. 13/632,041 filed Sep. 30, 2012 (Ref. No. NES0162-US); U.S. Ser. No. 13/632,070 filed Sep. 30, 2012 (Ref. No. NES0234-US); and U.S. Ser. No. 13/864,929 filed Apr. 17, 2013 (Ref. No. NES0334-US).

When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.

As used herein the term “HVAC” includes systems providing both heating and cooling, heating only, cooling only, as well as systems that provide other occupant comfort and/or conditioning functionality such as humidification, dehumidification and ventilation. As used herein the term “residential” when referring to an HVAC system means a type of HVAC system that is suitable to heat, cool and/or otherwise condition the interior of a building that is primarily used as a single family dwelling. An example of a cooling system that would be considered residential would have a cooling capacity of less than about 5 tons of refrigeration (1 ton of refrigeration=12,000 Btu/h). As used herein the term “light commercial” when referring to an HVAC system means a type of HVAC system that is suitable to heat, cool and/or otherwise condition the interior of a building that is primarily used for commercial purposes, but is of a size and construction that a residential HVAC system is considered suitable. An example of a cooling system that would be considered residential would have a cooling capacity of less than about 5 tons of refrigeration. As used herein the term “thermostat” means a device or system for regulating parameters such as temperature and/or humidity within at least a part of an enclosure. The term “thermostat” may include a control unit for a heating and/or cooling system or a component part of a heater or air conditioner. As used herein the term “thermostat” can also refer generally to a versatile sensing and control unit (VSCU unit) that is configured and adapted to provide sophisticated, customized, energy-saving HVAC control functionality while at the same time being visually appealing.

Additionally, as used herein in the context of thermostat schedules, the term “temperature setpoint” is used to describe piece of data stored in a memory of the thermostat that has an associated temperature (e.g., the temperature that the thermostat seeks to provide) and an associated time (e.g., the time at which the temperature setpoint should take effect). As such, the term “implement”, as used herein with respect to a temperature setpoint, generally refers to the thermostat controlling the HVAC system (e.g., activating or deactivating one or more heating or cooling stages of the HVAC system) in a suitable manner to provide the temperature associated with the temperature setpoint.

As mentioned above, it may be generally desirable to reduce power consumption of a HVAC system of a particular structure. One way of generally achieving this reduction is to limit operation of the HVAC system to particular times based on the needs of an occupant of the structure. As set forth in detail below, present embodiments provide systems and methods for controlling a HVAC system in response to detected or predicted occupant activity. The embodiments discussed below include examples of making temporary exceptions to a time-based temperature setpoint schedule of the HVAC system based on occupant activity, as well as methods for permanently modifying the temperature setpoint schedule based on the occurrence of one or more exceptions. Additionally, the embodiments discussed below include examples of activity-based temperature programs that may enable the HVAC system to implement particular activity-based temperature setpoints in response to detecting or predicting particular occupant activities or activity levels (e.g., particular types or degrees of occupant activity and/or changes between different types or degrees of occupant activity). Further, present embodiments enable a hybrid temperature program that may include, for example, a combination of both time-based temperature setpoints (e.g., with occupant activity-based exceptions) and activity-based temperature setpoints. Accordingly, the embodiments discussed below enable more efficient control of the HVAC system, which may reduce power consumption by the HVAC system, extend the life of the HVAC system, and provide an environment within the structure that may be better tuned to particular activities and preferences of the occupant.

With the foregoing in mind, FIG. 1 illustrates an example of a structure 10 having a HVAC system 20, in accordance with embodiments of the present approach. In particular, the structure 10 illustrated in FIG. 1 is a “smart” residential dwelling that includes a number of “smart” features (e.g., sensors, processors, automation devices, and so forth) that may enable devices (e.g., lights, door locks, appliances, etc.) of the structure 10 to operate in an automated manner. For example, the structure 10 may include a controller 15, which may be part of a home automation system for controlling one or more features of the structure 10. For example, the illustrated “smart” structure 10 includes a plurality of sensors 12 (e.g., sensors 12A-J, discussed in greater detail below) and a plurality of light fixtures 14 (e.g., light fixtures 14A-14I) that may be communicatively coupled to the controller 15. Further, the controller 15 may include a processor programmed to utilize the inputs from the plurality of sensors 12 to determine occupancy of a particular portion of the structure 10 and programmed to only activate a portion of the plurality of light fixtures 14 that are positioned in the occupied portion of the structure 10. It may be appreciated that the light fixtures 14 are merely provided as an example, and that, in certain embodiments, the controller 15 may be programmed to control any feature (e.g., lighting, sound systems, window shades, appliances, etc.) of the structure 10 in an automated fashion. In certain embodiments, the controller 15 may be implemented on a portable computing device, such as a tablet or a smart phone. In certain embodiments, the controller 15 may be implemented by a wall-mounted device (e.g., like the controller 15 of FIG. 1), in part, and by a portable computing device, such as a tablet of smart phone, in part. As set forth below, in certain embodiments, thermostats 16A-B that control the HVAC system 20 may be communicatively coupled to or integrated with one or more features of the “smart” structure 10, such as the sensors 12A-J and/or the controller 15, to receive information regarding different types or levels of occupant activity for the structure 10. For example, in certain embodiments, the thermostats 16 may determine how to control the HVAC system 20 based in part on input from the controller 15, while, in other embodiments, the thermostats 16 and the controller 15 may cooperate to jointly decide how to control the HVAC system 20 of the structure 10. In certain embodiments, the presently disclosed approach may be implemented in commercial and residential structures that lack one or more of the described “smart” features (e.g., sensors 12A-J, controller 15). For such embodiments, as discussed below, the thermostats (e.g., thermostats 16A and/or 16B) may themselves include one or more sensors (e.g., passive infra-red sensors, ultrasound sensors, vibration sensors, etc.) that are able to detect or measure different types or levels of occupant activity for the structure 10. Examples of thermostats including such sensors for detecting occupant activity are disclosed in U.S. Pat. No. 8,622,314, which is incorporated by reference herein in its entirety for all purposes.

The HVAC system 20 illustrated in FIG. 1 includes an interior unit 22 and an exterior unit 24 and is controlled by the thermostats 16A and 16B, which are illustrated as wall-mounted devices. As discussed in detail below with respect to FIG. 2, the interior unit 22 and the exterior unit 24 of the HVAC system 20 include a number of components that cooperate to condition (e.g., cool, heat, humidify, dehumidify, ventilate, etc.) interior portions of the structure 10 based on control signals supplied by the thermostats 16A and 16B. It should be appreciated that the HVAC system 20 illustrated in FIG. 1 is merely provided as an example, and the present approach is also applicable to more complicated HVAC systems having any suitable number interior units 22 and exterior units 24 to manage the temperature of the structure 10. Further, it should be appreciated that, while certain descriptions and examples set forth below may describe the activities of a single occupant for simplicity sake, embodiments of the present approach are applicable to any structure 10 having one or more occupants at particular times.

In addition to the HVAC system 20, the “smart” residential structure 10 illustrated in FIG. 1 may include other systems (e.g., automation systems, security systems, power management systems, and so forth) that may be communicatively coupled to the HVAC system 20 to better manage the temperature of the structure 10. For example, as set forth above, in certain embodiments, the controller 15 may be a controller for a home automation system that may manage the lighting (e.g., light fixtures 14) throughout the structure 10. The home automation systems may, additionally or alternatively, include other “smart” appliances (e.g., an automated pool heater 25, an automated garage door system 26, and automated lawn watering system 27, an automated front door locking device 28, and so forth) to allow an occupant to monitor, manage, or control systems and components of the structure 10. In other embodiments, the controller 15 may, additionally or alternatively, be a controller for a home security system that may include the sensors 12 as well as other security features (e.g., window sensors 30, door entry sensors 32, and so forth) to allow an occupant to manage security features of the structure 10. Additionally, in certain embodiments, the controller 15 may be communicatively coupled to the thermostats 16A and 16B to exchange information about activities of occupants and/or devices of the structure 10.

Further, the “smart” residential structure 10 illustrated in FIG. 1 has a power management system that includes the “smart” power meter 34, which may provide information to the “smart” appliances associated with the structure 10 (e.g., the thermostats 16, refrigerator 36, dishwasher 38, electric vehicle (EV) 39, EV charging station 40, water heater 42, exercise equipment 43, washer 44, dryer 46, television 47, or any other suitable “smart” appliance of the structure 10) regarding the current price of power, the current load on the power grid, power usage statistics of the structure 10, and so forth, such that the “smart” appliances may operate only at particular times to reduce power costs and/or improve overall efficiency of the structure 10. Accordingly, one or more components of each of the described control systems (e.g., a home automation system, a home security system, etc.) of the structure 10 may be communicatively coupled (e.g., via a wireless or wired networking interface, discussed in detail below) to at least one thermostat 16 of the HVAC system 20 and provide data inputs to the processor of the thermostat 16 for use in determining and implementing temperature setpoints, as discussed in detail below. It may be appreciated that, in certain embodiments, one or more of the components of the structure 10, such as the sensors 12 discussed in detail below, may be directly coupled to, or part of, the HVAC system 20 (e.g., rather than being part of another system of the structure 10 that is indirectly coupled to the HVAC system 20).

With the foregoing in mind, the sensors 12 distributed throughout the structure 10 illustrated in FIG. 1 may each include a number (e.g., 1, 2, 3, 4, 5, or more) sensing devices capable of performing one or more measurements of the surrounding environment in and around the structure 10. As set forth in detail below, the measurements performed by these sensors 12 provide inputs (e.g., directly or indirectly) to the HVAC system 20, and potentially other systems (e.g., automation systems, security systems, etc.) of the structure 10, that may be used to determine how many occupants may be in the structure 10, where occupants may be located within the structure 10, and what types and/or levels of activity these occupants may be performing For example, in certain embodiments, the sensors 12 may include a thermal or acoustic motion sensing device capable of detecting occupancy (e.g., presence of one or more occupants) and/or occupant activities (e.g., movement or actions of the one or more occupants). By further example, in certain embodiments, the sensors 12 may include an acoustic monitoring device, such as a microphone, capable of measuring sounds of different intensities and/or frequencies as a measure of occupancy and/or particular occupant activities within portions of the structure 10. In certain embodiments, the acoustic monitoring device of the sensors 12 may be paired with an ultrasonic emitter to enable the acoustic monitoring device to perform sonar measurements as a measure of occupancy and/or occupant activities within portions of the structure 10.

By further example, in certain embodiments, the sensors 12 may include visible or infra-red (IR) light sensing devices (e.g., passive IR sensors) capable of measuring occupancy and/or occupant activity within portions of the structure 10.

For example, in certain embodiments, the sensors 12 may include an IR sensing device that is capable of measuring a temperature of an occupant to provide indication of a level of activity of the occupant. In certain embodiments, the sensors 12 may include cameras (e.g., visible light and/or IR cameras, such as cameras of a security system) capable of capturing visual images of the occupant that may analyzed (e.g., by the controller 15 or the thermostats 16) to determine occupancy and/or occupant activities in portions of the structure 10. For example, in certain embodiments, video or image data from such visible light or IR camera sensors 12 may be analyzed using any number of facial, voice, and/or gait recognition algorithms or techniques.

In certain embodiments, the sensors 12 may include vibration sensing devices capable of subtle movements within the structure 10 as an indication of occupancy and/or occupant activity within portions of the structure 10. The sensors 12 may, in certain embodiments, include air pressure sensors capable of measuring air pressure changes (e.g., caused by opening and closing of doors of the structure 10, caused by respiration and/or motion of the occupants) as an indication of occupancy and/or occupant activity within portions of the structure 10. In certain embodiments, the sensors 12 may include gas analysis devices capable of detecting presence or levels of smoke, carbon monoxide, water vapor, methane, and/or carbon dioxide, which may provide a measure of occupancy and/or particular occupant activities (e.g., cooking, exercising, smoking, etc.) within portions of the structure 10. Additionally, in certain embodiments, the sensors 12 may include temperature sensing devices (e.g., thermocouples or IR sensors) capable of measuring one or more temperatures within the structure 10, which may also provide a measure of occupancy and/or occupant activity within portions of the structure 10.

Additionally, in certain embodiments, the sensors 12 may include flow sensing devices that may, for example, be coupled to the plumbing of shower 54, the bathroom sink 56, the washing machine 44, the dishwasher 38, the kitchen sink 58, the water heater 42, toilets (not shown), and so forth, to provide a measure of occupancy and/or occupant activities (e.g., bathing, washing dishes, washing clothes, flushing toilets, etc.) within particular portions of the structure 10. Similarly, in certain embodiments, the sensors 12 may include flow sensing devices coupled to one or more natural gas conduits of the structure 10 (not show) that, for example, may be coupled to the range 60, the water heater 42, the dryer 46, and or other components of the structure 10. Such flow sensors may also provide a measure of occupancy and/or certain occupant activities (e.g., bathing, washing dishes, cooking, etc.) within particular portions of the structure 10

In certain embodiments, the sensors 12 may include electromagnetic sensing devices that are capable of measuring electromagnetic signals. For example, in certain embodiments, an electromagnetic sensing device of the sensors 12 may measure the electrical magnetic interference (EMI) or electrical noise generated by the operation of electronic devices, which may provide a measure of occupancy and/or occupant activities (e.g., drying hair with a hair dryer, preparing toast using a toaster oven, heating coffee in a microwave, and so forth) in a portion of the structure 10. In certain embodiments, the electromagnetic sensing device may measure an EMI signal generated in free space (e.g., through the air) or an EMI signal generated within the electrical circuit (e.g., electrical noise on the circuit being used) a result of the operation of the electrical device in a portion of the structure 10. In certain embodiments, the sensors 12 may include electromagnetic sensing devices capable of measuring the load on an electrical circuit of the structure, which may provide another measure of occupancy and/or occupant activities (e.g., activation of the dryer 46, activation of the dishwasher 38, activation or deactivation of the EV charging station 40) in a portion of the structure 10.

By further example, in certain embodiments, the electromagnetic sensing devices of the sensors 12 may measure one or more attributes of a wireless communication signal, such as a wireless signal generated by a cellular phone 48, a computer 50, and/or a router 52 (e.g., a wireless router or wireless access point). By specific example, the sensors 12 may detect movement of the cellular phone 48 throughout the structure 10 (e.g., in the pocket or purse of the occupant) by measuring a progressively changing intensity of one or more wireless communication signals (e.g., cellular signals, WiFi data signals, Bluetooth® signals, etc.) emitted by the cellular phone 48 as it is carried through the structure 10 by the occupant. In certain embodiments, the sensors 12 may instead measure the totality of wireless communication signals currently being generated as an indication of occupancy and/or occupant activities (e.g., checking email, web surfing, streaming media, etc.) within a portion of the structure 10. In still other embodiments, the sensors 12 may continually or intermittently monitor one or more wireless communication signals (e.g., wireless signals generated by the router 52) and may provide a measure of occupancy and/or occupant activity based on distortions to these signals that are caused by the motion or activity of the occupant. In another embodiment, the sensors 12 may instead measure a total wireless signal or a total wireless signal of a particular channel of a wireless network (e.g., 802.11 WiFi channel 6) as an indication of occupancy or occupant activity within the structure 10. It may be appreciated that such an embodiment may enable a level of wireless network traffic to be gauged by sensors 12 that are not necessarily attached to (e.g., authenticated with) the wireless network.

As mentioned above, the HVAC system 20 may generally function to control the environment, such as the temperature and humidity, inside the structure 10. FIG. 2 is a schematic illustrating certain components of an embodiment of the HVAC system 20, which may be a residential or light commercial structure HVAC system 20. As discussed above, one or more thermostats (e.g., thermostat 16A and thermostat 16B) are coupled directly or indirectly to the HVAC system 20 to control its operation. By specific example, each of the thermostats 16A and 16B may be a Learning Thermostat™ available from Nest Labs of Palo Alto, Calif. As illustrated in FIG. 2, a first or primary thermostat 16A may be directly coupled to a control unit 70 of the internal unit 22 of the HVAC system 20 (e.g., via one or more signal wires 72), such that the thermostat 16A may provide control signals to the control unit 70 to initiate heating or cooling by the illustrated HVAC system 20. Additionally, the embodiment of the HVAC system 20 illustrated in FIG. 2 includes a second or secondary thermostat 16B that may be communicatively coupled to the primary thermostat 16A (e.g., via wireless communication link 74) such that the primary and secondary thermostats 16A and 16B may cooperate to determine the appropriate control signals to be provided to the control unit 70 to affect heating or cooling of the structure 10.

Additionally, for embodiment of the HVAC system 20 illustrated in FIG. 2, the interior unit 22 of the HVAC system 20 includes cooling coils 76, heating coils 78, as well as a fan 80. During operation, the fan 80 directs an air flow 82 to enter the HVAC system 20 via the return air duct 84 and to traverse the filter 86. From there, the fan 80 directs the air flow 82 into the interior unit 22, across the heating coils 78 and cooling coils 76, and out of the interior unit 22, where the airflow 82 is subsequently distributed throughout the structure 10 by ducts 88 and registers 90. In the case of heating, the airflow 82 may be warmed when moving across the heating coils 78 of the interior unit 22 of the HVAC system 20.

In the case of cooling, heat may be removed from the airflow 82 by the cooling coils 76 of the interior unit 22 and transferred to a coolant disposed inside of the cooling coils 76. The coolant may subsequently be directed to a heat exchanger 92 of the exterior unit 24 of the HVAC system 20 via a first conduit 94. After cooling within the heat exchanger 92, the coolant may subsequently be directed to the compressor 96 of the exterior unit 24 of the HVAC system 20 for compression. Then, the compressed coolant may be directed back to the cooling coils 76 of the interior unit 22 via the conduit 98 to once again cool the airflow 82. It should be appreciated that the HVAC system 20 illustrated in FIG. 2 is provided merely as an example and that other embodiments may include additional components (e.g., humidifiers/dehumidifiers, furnaces, air handlers, fans, and so forth) and/or additional features (e.g., multi-stage heating and/or cooling) without negating the effect of the present approach.

As set forth above, the measurements performed by the sensors 12 may be consumed by the thermostats 16 of the HVAC system 20 to determine occupancy and/or occupant activities within portions of the structure 10. As set forth in detail below, the thermostats 16 may use this sensor data, as well as other measurements or observations, to determine occupancy and/or occupant activity information and then to modify (e.g., temporarily or permanently) a temperature setpoint schedule for the structure 10 based on this occupancy and/or occupant activity information. With the foregoing in mind FIG. 3 is a schematic illustrating certain internal components of an embodiment of a thermostat 16 as well as certain data inputs 110 that may be used by the thermostat 16.

The illustrated embodiment of the thermostat 16 of FIG. 3 includes a processor 112 configured to execute instructions (e.g., software or firmware) stored in a memory 114 to control operation of the thermostat 16 and to generally manage the temperature of the structure 10 according to the preferences of the occupant. The thermostat 16 illustrated in FIG. 3 also includes communication circuitry 116 (e.g., network interface circuitry) that, as discussed in detail below, is configured to enable the thermostat 16 to communicate with other devices and systems. The illustrated embodiment of the thermostat 16 also includes input devices 118 (e.g., knobs, wheels, touchscreens, buttons, dials, or other suitable input devices) to enable a user to directly interface with the thermostat 16 to provide, for example, occupant temperature preferences. The illustrated thermostat 16 further includes display circuitry 120 capable of presenting a graphical user interface (GUI) to display information to the user. Further, the illustrated thermostat 16 also includes a number of (e.g., 1, 2, 3, 4, or more) sensors 122, which may, in certain embodiments, include any combination of the sensors 12 discussed above that may be disposed on or coupled to the thermostat 16. For example, in certain embodiments, the sensors 122 may include one or more of the temperature sensing devices, acoustic sensing devices, visible or IR sensing devices, vibration sensing devices, air pressure sensing devices, or EMI sensing devices discussed above.

The communication circuitry 116 of the thermostat 16 may include various wired and/or wireless networking interfaces that enable the thermostat 16 to receive various data inputs 110. For example, the communication circuitry 116 may include 802.xx (e.g., 802.11 a/b/g/n/ac) wireless networking interface to enable the thermostat 16 to communicatively couple to the router 52, which may be the central internet communication hub for the structure 10. That is, the router 52 may host the computer network of the structure 10 and may provide wired and/or wireless access to the network as well as the internet for the devices of the structure 10. Accordingly, the communication circuitry 116 may enable the thermostat 16 to interact with certain online resources 124 (e.g., online thermostat management resources, online temperature setpoint schedule backup resources, historical temperature profile information for the structure 10, and so forth) via its connection to the router 52. It may be appreciated that the network illustrated in FIG. 3 is merely provided as an example and that, in other embodiments, the thermostat 16 may directly communicate with the illustrated devices without the router 52 (e.g., in a wireless mesh network, or similar topology).

Additionally, being coupled to the computer network of the structure 10 (e.g., hosted by the router 52) may enable the thermostat 16 interact with certain data inputs 110 (e.g., data sources) also coupled to the router 52 in order to detect or determine occupancy and/or occupant activity in the structure 10. For example, as discussed above with respect to FIG. 1, in certain embodiments the thermostat 16 may receive information from automation systems 126, security systems 128, and/or power management systems 130 to determine information relevant to occupancy and/or occupant activity within portions of the structure 10. Also, as mentioned above, in certain embodiments the thermostat 16 may receive information directly from sensors 12 positioned throughout the structure 10 relevant to occupancy and/or occupant activity within portions of the structure 10. Further, one or more of the “smart” appliances 132 of the structure 10 discussed above may be also coupled to the router 52, which may enable the thermostat 16 to determine information (e.g., modes of operation, operation schedules, access or usage schedules, maintenance schedules, and so forth) for these appliances, which may be used to determine or predict occupancy and/or occupant activity within portions of the structure 10.

Further, as illustrated in FIG. 3, since the thermostat 16 is coupled to the router 52, the thermostat 16 may also detect the presence or activity of certain devices communicating on the computer network hosted by the router 52. For example, in certain embodiments, the thermostat 16 may be able to detect network traffic being generated by a computer 50, cell phone 48, television 47, video game consoles 136, streaming media devices 138, or any other networked device of the structure 10, which may be used as a measure of occupancy and/or occupant activity within portions of the structure 10. By specific example, in certain embodiments, a spike in network traffic by one or more of the devices listed above may indicate that an occupant is actively using a device (e.g., television 47) that may be associated with a particular portion of the structure 10 (e.g., the living room or den). Further, in certain embodiments, the thermostat 16 may receive information regarding the current location (e.g., global positioning system (GPS) coordinates or cellular phone location coordinates) of the occupant from one or more data inputs 110 (e.g., the cellular phone 48, the computer 50, a navigation system of the EV 39), which may be use to determine present activity and predict future activity of the occupant. For example, the thermostat 16 may determine that the occupant is present or away or to predict when the occupant may arrive at the structure 10 based on such occupant location information.

Furthermore, being coupled to the computer network of the structure 10 may also enable the thermostat 16 to interact with certain data inputs 110 to predict future occupancy and/or occupant activities in the structure 10. For example, in certain embodiments, an occupant may enable the thermostat 16 to access occupant schedule information from one or more data inputs 110. By specific example, an occupant may maintain an agenda or schedule on the computer 50, on the cellular phone 48, or using an online resource 124, and the occupant may further grant the thermostat 116 access to the occupant's schedule on one or more of these devices or resources. In certain embodiments, the thermostat 16 may be able to access other occupant information from the computer 50, cellular phone 48, and/or online resources 124, such as, for example, the occupant's e-mails, notes, instant messages, to-do lists, or any other suitable data source storing information relevant to predicting future activities of the occupant. For example, in certain embodiments, the thermostat 16 may access a Passbook® app, or another suitable app or application of the cellular phone 48 storing event and travel ticket information , to glean information about future outings and/or travels of the occupant. By further example, in certain embodiments, the thermostat may access one or more scheduled alarms of an alarm app or application of the cellular phone 48 to glean information useful in predicting when the occupant may wake the following day. Accordingly, the thermostat 16 may utilize one or more of these resources to predict future occupancy and/or occupant activity in the structure 10. Specific examples of such embodiments are set forth in greater detail below.

As mentioned above, the thermostat 16 is capable of receiving occupant temperature preferences to construct a temperature setpoint schedule for the structure 10. FIG. 4 is a flow diagram illustrating an embodiment of a process 150 by which the processor 112 of the thermostat 16 may determine a temperature setpoint schedule based on a combination of occupant temperature preferences and collected occupant activity data. It should be appreciated that the illustrated process 150 represents one possibility for how a temperature setpoint schedule may be constructed and, in other embodiments, other methods may be used without negating the effect of the present approach. In certain embodiments, the process 150 may incorporate one or more features of the methods for automated control-schedule acquisition set forth in U.S. Pat. No. 8,630,740, which is incorporated by reference herein in its entirety for all purposes.

With the foregoing in mind, the illustrated process 150 of FIG. 4 begins with the processor 112 of the thermostat 16 activating learning mode (block 152). In certain embodiments, the processor 112 may activate learning mode in response to user input (e.g., received from input devices 118). In certain embodiments, the processor 112 of the thermostat 16 may be preprogrammed to begin operation in learning mode by default after installation. While learning mode is activated, the processor 112 may receive (block 154) user input at a particular time requesting a particular temperature. In response, the processor 112 of the thermostat 16 provides control signals (block 156) the HVAC system 20 to adjust a temperature of structure 10 according to the occupant temperature preference. Further, the processor 112 stores (block 158) both the temperature and the time associated with the user input in the memory 114 for trend analysis. Additionally, in certain embodiments, the processor 112 may also collect and store (block 160) occupant activity data around the time associated with the user input for trend analysis.

Throughout learning mode operation, after each user input is received, the processor 112 of the thermostat 16 analyzes (block 162) the time, temperature, and occupant activity data associated with the current user input relative to the time, temperature, and occupant activity data associated with previous user inputs and attempt to identify trends. If the processor 112 identifies (block 164) a trend or correlation between the time, temperature, and occupant activity data associated with the current user input and the time, temperature, and occupant activity data associated with previous user inputs, the processor 112 may create (block 166) or modify a temperature setpoint of the temperature setpoint schedule based on the correlation. For example, when the processor 112 identifies that the occupant has a tendency to request a temperature of about 70° F. at 4:30 PM every Monday, then the processor 112 may create a temperature setpoint having an associated temperature of 70° F. and an associated time of 4:30 PM on Monday. Furthermore, in creating the temperature setpoint, in certain embodiments, the processor 112 may utilize the occupant activity data to identify occupant activity types or degrees that occur around the time (e.g., just prior and just after the time) associated with the temperature setpoint. As discussed in greater detail below, this occupant activity data may be used to define the parameters (e.g., exception time windows, occupant activity indicators) for occupant activity-based exceptions for the created temperature setpoint, as discussed in greater detail below. As indicated by the arrows 165 and 167, blocks 152 through 166 may be repeated with every user input that occurs while the thermostat 16 is in learning mode.

It may be appreciated that, in certain embodiments, the learning mode of the processor 112 may be more aggressive for an initial period of time in order for an initial temperature setpoint schedule to be generated. For example, the processor 112 may initially add a temperature setpoint or change a temperature setpoint of the temperature program after only two instances of a user requesting a particular temperature near the same time of day. Then, after an initial temperature program is generated, the learning mode of the processor 112 may be less aggressive and only modify the temperature setpoint schedule after several deviations (e.g., four or more deviations) from the current temperature program are observed in the user inputs and/or the occupant activity data. In certain embodiments, the thermostat 16 may remain in learning mode and may continue learning the temperature preferences of the occupant throughout operation, albeit in a less aggressive manner than when the learning mode was initially activated. In other embodiments, after a period of time (e.g., a day, week, fortnight, or month) has passed, the processor 112 may deactivate the learning mode of the thermostat 16. In still other embodiments, the processor 112 may deactivate the learning mode of the thermostat 16 in response to user input requesting such deactivation.

FIG. 5 depicts a visual representation of an embodiment of a temperature setpoint schedule 170 such as may be generated as an output of the process 150 illustrated in FIG. 4. The temperature setpoint schedule 170 illustrated in FIG. 5 includes the days of the week 172 on the vertical axis and includes the hours of the day 174 on the horizontal axis. Additionally, the temperature setpoint schedule 170 includes a number of temperature setpoints 176 indicating a particular time and a particular temperature associated with each of the temperature setpoints 176. That is, as illustrated in FIG. 5, the temperature setpoints 176 indicate particular times using their respective positions in the temperature setpoint schedule 170 and indicate particular temperatures using the numerical values respectively displayed by each of the illustrated temperature setpoints 176. Accordingly, as the thermostat 16 is trained according to the temperature preferences of the occupant during learning mode, the thermostat 16 may generate the temperature setpoint schedule 170 and may control operation of the HVAC system 20 to implement the temperature setpoint schedule 170 in an efficient manner.

Additionally, in certain embodiments, the thermostat 16 may also accommodate occupant activity-based exceptions to the temperature setpoint schedule 170. For example, as set forth above, in certain embodiments the thermostat 16 may collect and store occupant activity data from one or more sensors (e.g., sensors 12 and/or sensors 122 discussed above) and/or data sources (e.g., data inputs 110), which may be used by the processor 112 to determine where in the structure 10 occupants may be located and/or what type or degree of activity these occupants may be performing As set forth above with respect to FIG. 4, when the processor 112 creates or modifies a particular temperature setpoint based on user input, the processor 112 may associate the time and temperature of the user input with a particular occupant activity data collected around the time of the user. For example, the occupant activity data may be indicative of a first type or degree of occupant activity that occurs before the user input, and may be indicative of a second type or degree of occupant activity (different from the first in a statistically detectable manner) that occurs after the user input. Accordingly, when the processor 112 creates or modifies a temperature setpoint based on the user input, the processor 112 may define an exception time window around (e.g., before, after, or both before and after) a temperature setpoint, and an exception may be triggered by a statistically detectable change in the type or degree of occupant activity within the exception time window (e.g., from a first type or degree of occupant activity occurring prior to the time associated with a temperature setpoint to a second type or degree of occupant activity occurring subsequent to the time associated with the temperature setpoint) to cause the early or late implementation of the temperature associated with the temperature setpoint.

By specific example, a sensor associated with the thermostat 16 may identify a pattern in which an occupant tends to move at particular times (e.g., Monday evenings around 6:00 PM) to a particular portion of the structure 10 (e.g., a home gym) just prior to providing a user input requesting a cooler temperature (e.g., 70° F.). As such, in addition to creating a temperature setpoint for Monday evening at 6:00 PM, the processor 112 may associate the occupant's movement to the home gym area with the created temperature setpoint. Further, in certain embodiments, the processor 112 may continue to collect occupant activity data around the time of the temperature setpoint for a period of time (e.g., during the more aggressive portion of learning mode) to determine how much the workout time may vary in order to define an exception time window for the temperature setpoint, as discussed below. Once the exception window has been defined, when the processor 112 detects or predicts the change in the type or degree of occupant activity (e.g., the occupant's movement to the home gym area) during the exception window, the processor may implement the temperature associated with the temperature setpoint (i.e., 70° F.) early or late, relative to the 6:00 PM time associated with the temperature setpoint, in response to the detected or predicted change.

In another example, a sensor associated with the thermostat 16 may identify a pattern in which an occupant tends request a warmer temperature (e.g., 78° F.) immediately after rising from bed around 5:00 AM on weekdays. As such, in addition to creating temperature setpoints for weekday mornings at 5:00 AM, the processor 112 may associate the low level of occupant activity before the user input and/or the higher level of occupant activity after the user input with each of the created temperature setpoints. Further, in certain embodiments, the processor 112 may continue to collect occupant activity data around the times of the temperature setpoints for a period of time (e.g., during the more aggressive portion of learning mode) to determine how much the wake time of the occupant may vary in order to define exception time windows around the temperature setpoints, as discussed below. Once the exception window has been defined, when the processor 112 detects or predicts the change in the type or degree of occupant activity (e.g., the occupant's waking and rising from bed) during the exception window, the processor may implement the temperature associated with the temperature setpoint (i.e., 78° F.) early or late, relative to the 5:00 AM time associated with the temperature setpoint, in response to the detected or predicted change.

At some point after learning trends between the user inputs and the occupant activity data, the processor 112 may be capable of determining if exceptions should be made to the implemented temperature setpoint schedule based on observed or predicted occupant activity types or degrees. For example, in certain embodiments, after the aggressive portion of learning mode is completed, the memory 114 of the thermostat 16 may store sufficient trends between the user inputs and the occupant activity data that the processor 112 may be able to determine if particular temperature setpoint, associated with a particular occupant activity type or degree or associated with a change from a first type or degree of occupant activity to a second type or degree of occupant activity, should be implemented early or late based on an observation or a prediction of the change in the particular occupant activity type or degree. Accordingly, the processor 112 may make an exception to the temperature setpoint schedule 170 and implement a temperature setpoint at a time different (e.g., earlier or later) than the time associated with the temperature setpoint based on detected or predicted types or degrees of occupant activity (e.g., a statistically detectable change in the type or degree of occupant activity). As discussed below with respect to FIG. 11, in certain embodiments, the processor 112 of the thermostat 16 may also be capable of permanently modifying the temperature setpoint schedule 170 after multiple occurrences of such occupant activity-based exceptions to the schedule.

In certain embodiments, the thermostat 16 may monitor inputs from sensors 12 and/or 122, user inputs, and/or other data inputs 110 for some period or window of time (e.g., an exception time window) extending before and/or after a particular temperature setpoint to determine if an occupant activity-based exception has occurred. As mentioned above, in certain embodiments, the position and duration of an exception time window of a temperature setpoint may be determined based on how the occupant activity data varies during the period of time that the processor 112 of the thermostat 16 is actively learning the relationship between the occupant temperature preference and the occupant activity (e.g., during an aggressive portion of learning mode). For example, while actively or aggressively learning the relationship between occupant temperature preference and the occupant activity, the processor 112 may be able to determine, for example, variation in the start time of the occupant activity (e.g., the occupant generally exercises at 6:00 PM, but may start as early as 5:00 AM or as late as 6:30 PM), variation in the duration of the occupant activity (e.g., the occupant generally exercises for between 30 minutes to 1 hour), variation in the location of the occupant activity within the structure 10 (e.g., the occupant generally exercises in a home gym, but occasionally exercises in basement instead), and/or variation in the level or degree of the occupant activity (e.g., the occupant generally has a high to a medium level of activity while exercising). Based on the determined variations in occupant activity data around a temperature setpoint, the processor 112 may determine an exception time window extending before, after, or before and after the temperature setpoint should be used. Once the processor 112 has determined the appropriate exception window and the changes in the types and/or degrees of occupant activity that will trigger an exception, the processor 112 may implement the temperature associated with the temperature setpoint earlier or later in response to the changes in the types and/or levels of occupant activity being observed or predicted to occur within the exception time window.

With this in mind, FIGS. 6-10 illustrate examples of exception time windows surrounding a particular temperature setpoint 176, which has an associated temperature of 68° F. and an associated time of 5:00 AM on Monday morning. Additionally, for the examples discussed below, the temperature setpoint 176 illustrated in FIGS. 6-10 is associated with a particular occupant activity, namely waking and rising from bed. As discussed in detail below, the time windows illustrated in FIGS. 6-10 are intended to demonstrate different periods of time in which the processor 112 of the thermostat 16 may respond to a detected or predicted activity of an occupant to temporarily modify the time associated with the temperature setpoint 176. Further, it may be appreciated that the time windows of FIGS. 6-10 are merely provided as non-limiting examples. As set forth above, the exception time windows illustrated in FIGS. 6-10 may be automatically defined by the processor 112 of the thermostat 16 based on variations in the occupant activity data occurring around the time associated with the particular temperature setpoint 176 (e.g., collected during an aggressive learning portion of learning mode). In other embodiments, these exception windows may be created and/or modified based on user input received from an occupant.

With the forgoing in mind, FIG. 6 illustrates an example of an exception time window 180 that extends before the time associated with the temperature setpoint 176. In particular, the time window 180 illustrated in FIG. 6 begins an hour and a half prior to the 5:00 AM time associated with the temperature setpoint 176. Accordingly, if the processor 112 of the thermostat 16 determines or predicts the occurrence of an associated occupant activity or activity level during the time window 180, the processor 112 may implement the temperature setpoint 176 early (e.g., prior to the normal time associated with the temperature setpoint 176) to provide the 68° F. temperature associated with the temperature setpoint 176 sooner. That is, for example, if the sensors 12 and/or 122 provide the processor 112 with indications that the occupant is active (e.g., indications of a change in occupant activity type or degree) during the exception time window 180, the processor 112 may make an exception and temporarily move up the time associated with the temperature setpoint 176 to accommodate the occupant's early rise. It may be appreciated that the hour and a half time window 180 illustrated in FIG. 6 is merely an example and that, in other embodiments, other suitable lengths of time may be used.

FIG. 7 illustrates an example of an exception time window 182 that extends after the time associated with the temperature setpoint 176. The exception time window 182 illustrated in FIG. 7 extends an hour and a half after the 5:00 AM time associated with the temperature setpoint 176. Accordingly, if the processor 112 of the thermostat 16 determines or predicts the occurrence of an associated occupant activity or activity level during the exception time window 182, the processor 112 may delay implementing the temperature setpoint 176. That is, if the sensors 12 and/or 122 provide the processor 112 with indications that the occupant is not active at the 5:00 AM time associated with the temperature setpoint 176, the processor 112 may make an exception and temporarily move back the time associated with the temperature setpoint 176 to accommodate the occupant sleeping late. For this example, the end of the illustrated exception time window 182 (e.g., at 6:30 AM) represents the latest time that the processor 112 may implement the temperature setpoint 176, regardless of occupant activity. It may be appreciated that the hour and a half time exception time window 182 illustrated in FIG. 7 is merely an example and that, in other embodiments, other suitable lengths of time may be used. In other embodiments, the processor 112 may implement the temperature setpoint 176 at the time associated with the temperature setpoint 176 instead of the end of the exception time window 182 when the change in occupant activity has not been observed or predicted.

FIG. 8 illustrates an example of a symmetric exception time window 184 that extends an equal amount of time before and after the time associated with the temperature setpoint 176. In particular, the exception time window 184 illustrated in FIG. 8 begins an hour and a half before and extends an hour and a half after the 5:00 AM time associated with the temperature setpoint 176. Accordingly, the exception time window 184 affords features of both the exception time window 180 and the exception time window 182 discussed above. That is, the exception time window 184 enables the processor 112 of the thermostat 16 to either implement the temperature setpoint 176 earlier or later, depending on a change in the type or degree of occupant activity. It may be appreciated that the three hour exception time window 184 illustrated in FIG. 8 is merely an example and that, in other embodiments, other suitable lengths of time may be used.

FIG. 9 illustrates an example of an asymmetric exception time window 186 that extends an unequal amount of time before and after the time associated with the temperature setpoint 176. The exception time window 186 illustrated in FIG. 9 begins an hour and a half before and extends half an hour after the 5:00 AM time associated with the temperature setpoint 176. Like the symmetric time window 184 discussed above, the time window 186 enables the processor 112 of the thermostat 16 to either implement the temperature setpoint 176 earlier or later, based on a change in the type or degree of occupant activity. However, unlike the exception time window 184, the exception time window 186 illustrated in FIG. 9 allows for, at most, a 30 minute delay in the implementation of the temperature setpoint 176. It may be appreciated that the two hour exception time window 186 illustrated in FIG. 7 is merely an example and that, in other embodiments, other suitable lengths of time may be used.

FIG. 10 is an illustration of a statistical exception time window 188 extending before and after a temperature setpoint 176. The statistical exception time window 188 of FIG. 10 is illustrated using a gradient that is darker at times closer to the 5:00 AM time associated with the temperature setpoint 176 and lighter at times farther away from the 5:00 AM time associated with the temperature setpoint 176. Accordingly, the shading of the statistical time window 188 represents a relative importance of or weight given to occupant activities determined or predicted to occur within the statistical exception time window 188, wherein events occurring closer to the 5:00 AM time associated with the temperature setpoint 176 are considered more important and/or are given higher weight. This may be useful, for example, when the processor 112 is trying to determine whether the occupant is getting up early for work or merely getting up in the middle of the night to use the restroom. Accordingly, in certain embodiments, a certain amount of occupant activity (e.g., motion sensors detect movement of the occupant, flow sensors detect activity within the plumbing, acoustic sensors detecting occupant noises, vibration sensors detecting vibrations in the structure 10 as a result of occupant movement or activity, and/or similar measurements of the sensors 12 and/or 122) may only be given sufficient weight by the processor 112 to trigger early or delayed implementation of the temperature setpoint 176 when the activity occurs sufficiently close to the time associated with the temperature setpoint 176 (e.g., within 1 hour of 5:00 AM). However, if the level of occupant activity is high at a time that is distant from the 5:00 AM time associated with the temperature setpoint 176, then the processor 112 may determine whether or not the combination of the high-level of occupant activity and the weight of the time of the occupant activity together is sufficiently great (e.g., exceeds a particular threshold value) to warrant early or delayed implementation of the temperature setpoint 176. Similarly, it may be appreciated that, in certain embodiments, the statistical time window 188 may extend a certain amount of time before and extend a certain amount of time after the time associated with the temperature setpoint 176.

Accordingly, FIGS. 6-10 illustrate examples of different types of exception time windows that may be used by the processor 112 of the thermostat 16 to determine when it is appropriate to temporarily move up or move back the implementation of a particular temperature setpoint 176 of a temperature setpoint schedule 170 based on changes in observed or predicted occupant activity. As mentioned above, in certain embodiments, the processor 112 of the thermostat 16 may actually modify the time associated with a temperature setpoint schedule after multiple occupant activity-based exceptions have occurred. For example, in certain embodiments, the processor 112 may store in the memory 114 details (e.g., exception time, exception temperature, and associated temperature setpoint) for each exception that occurs while implementing the temperature setpoint schedule. In this example, after the number of exceptions associated with a temperature setpoint rises beyond a threshold value (e.g., 4 or more exceptions), then the processor 112 may modify the time associated with the temperature setpoint to be the exception time.

In certain embodiments, the processor 112 may not modify the temperature setpoint schedule as a result of occupant activity-based exceptions unless the thermostat 16 is operating in an exception learning mode. For example, FIG. 11 illustrates an embodiment of a process 190 whereby the processor 112 of the thermostat 16 may permanently modify the temperature setpoint schedule 170 based on one or more determined exceptions to the temperature setpoint schedule 170 using an exception learning mode. In certain embodiments, exception learning mode may be a mode of operation of the thermostat 16 that may be activated after a temperature setpoint schedule 170 has been generated. In certain embodiments, the exception learning mode may be manually activated by a user or automatically activated by the processor 112 at a particular time (e.g., immediately after generation of the temperature setpoint schedule 170, three weeks after generation of the temperature setpoint schedule 170, every six months after generation of the temperature setpoint schedule 170) or based on a set of conditions (e.g., a particular number of exceptions or a number of exceptions per unit time after generation of the temperature setpoint schedule 170). In general, while activated, the exception learning mode of the thermostat 16 may enable the processor 112 to store in the memory 114 relevant information regarding exceptions to the temperature setpoint schedule 170. Subsequently, in certain embodiments, the processor 112 may permanently modify the temperature setpoint schedule 170 immediately (e.g., throughout the time exception learning mode is activated) or upon deactivation of the exception learning mode.

The process 190 illustrated in FIG. 11 begins with the processor 112 of the thermostat 16 receiving (block 192) user input to activate exception learning mode after determining or generating the temperature setpoint schedule 170 (e.g., as set forth above with respect to FIG. 4). The processor 112 may then activate (block 194) the exception learning mode of the thermostat 16. As mentioned above, in certain embodiments, the processor 112 may automatically activate exception learning mode at a particular time or based on a set of conditions. Once exception learning mode has been activated, the processor 112 may determine (block 196) and store exceptions to the temperature setpoint schedule 170 based on user input (e.g., user input of a new temperature setpoint) and/or based on an occupant activity or an occupant activity level at particular times. For example, as discussed above with respect to FIG. 6, if the processor 112 of the thermostat 16 determines or predicts a certain change in occupant activity during the time window 180, the processor 112 may make a temporary modification to the temperature setpoint schedule 170 to implement the temperature associated with the temperature setpoint 176 early based on the determined or predicted occupant activity. Furthermore, if the thermostat 16 is an exception learning mode, the processor 112 may also store information regarding the exception (e.g., in the memory 114) for eventual permanent modification of the temperature setpoint schedule 170.

Continuing through the process 190 illustrated in FIG. 11, the processor 112 may deactivate (block 198) the exception learning mode of the thermostat 16 after a predetermined period of time (e.g., 1 day, 1 week, or 1 month) or in response to user input requesting the deactivation. In certain embodiments, after deactivation of the exception learning mode, the processor 112 of the thermostat 16 may determine (block 200) a modified temperature setpoint schedule 170 based on the exceptions determined and stored when exception learning mode was active (e.g., in block 196). For example, in certain embodiments, the processor 112 may modify the temperature setpoint schedule 170 using the stored exceptions in the order received such that exceptions that would lead to conflicting changes in the temperature setpoint schedule 170 (e.g., a first Monday the occupant began the day an hour early, a second Monday the occupant began the day an hour late) may be given preference based on order received (e.g., newest or oldest takes priority), may be averaged together to determine the appropriate time and temperature to be associated with the modified temperature setpoint, or may be eliminated altogether. Further, in certain embodiments, the processor 112 may only permanently modify a particular temperature setpoint 176 when a number of exceptions of the particular temperature setpoint 176 exceeds a predetermined threshold value (e.g., 1, 2, 3, 4, 5, or more exceptions).

Furthermore, in certain embodiments, the thermostat 16 may also be capable of providing a temperature program for the structure 10 that is based primarily or entirely on occupant activity or occupant activity level (e.g., an activity-based temperature program) rather than a temperature program based primarily on time (e.g., the temperature setpoint schedule 170 illustrated in FIG. 5). As set forth in detail below, in certain embodiments, the processor 112 of the thermostat 16 may determine a level of occupant activity within the structure 10 and may implement a corresponding temperature setpoint regardless of the time of day, or with time of day being a secondary consideration after occupant activity. For example, in certain embodiments, the processor 112 may divide the length of a day into a number of intervals or windows based on statistically detectable changes in occupant activity types or degrees occurring within each window. Accordingly, the processor 112 may create an occupant activity-based setpoint that associates a temperature requested by the occupant during a window with the statistically detectable change in an occupant activity type or degree that defines the window. Subsequently, the processor 112 may determine that the statistically detectable change in occupant activity type or degree has occurred and implement the occupant activity-based setpoint accordingly. It may be appreciated that, in certain embodiments, such occupant activity-based temperature setpoints may coexist with time-based temperature setpoints within a single hybrid temperature program. In other embodiments, the occupant activity-based temperature setpoints may be part of an entirely occupant activity-based temperature program (e.g., a responsive temperature program) dependent entirely on occupant activity (e.g., does not consider time of day as a factor).

In certain embodiments discussed below, a user may utilize an activity learning mode of the thermostat 16 to define particular occupant activities as well as occupant temperature preferences for each of these activities. Accordingly, in such embodiments, the processor 112 of the thermostat 16 may subsequently use measurements of one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 to identify the particular activity and provide a suitable temperature in the structure 10 based on the occupant temperature preference for that particular activity. With the foregoing in mind, FIG. 12 illustrates an example of an activity-based temperature program 210 that is based on a level of occupant activity within the structure 10. As illustrated in FIG. 12, the activity-based temperature program 210 indicates temperature setpoints 212A-D that respectively correspond occupant activities 214A-D. For the activity-based temperature program 210 embodiment illustrated in FIG. 12, an activity level that corresponds to no occupant activity (e.g., represented by block 214A) is associated with the temperature setpoint 212A, corresponding to a temperature of 55° F. Additionally, a minimal level of occupant activity (e.g., represented by block 214B) is associated with the temperature setpoint 212B, corresponding to a temperature of 75° F. As illustrated, a median level of occupant activity (e.g., represented by block 214C) is associated with the temperature setpoint 212C, corresponding to a temperature of 70° F. Further, a high level of occupant activity (e.g., represented by the block 214D) is associated with the temperature setpoint 212D, corresponding to a temperature of 65° F.

It should be appreciated that, for embodiments of activity-based temperature program 210 illustrated in FIG. 12, since the thermostat 16 need not identify particular activities of the occupant, the activity-based temperature program 210 illustrated in FIG. 12 may be generated and implemented with little or no user training. For example, in certain embodiments, a user activating the activity-based temperature program 210 may be prompted to provide a temperature or a temperature range for each of the illustrated levels of occupant activity (e.g., no occupant activity, a minimal level occupant activity, a median level occupant activity, and a high level of occupant activity). As set forth below with respect to FIG. 15, after the activity-based temperature program 210 has been generated, upon detecting or predicting an appropriate level of occupant activity from the sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110, the processor 112 of the thermostat 16 may implement the corresponding temperature setpoint to provide a temperature or temperature range previously specified by the user. In other embodiments, upon activation of the activity-based temperature program 210, the user may be prompted to provide only a temperature range (e.g., a temperature floor and a temperature ceiling) for all occupant activities within the structure 10, and the processor 112 of the thermostat 16 may automatically determine suitable setpoint temperatures 212A-D for different levels of occupant activity 214A-D based on percentages of the temperature range. For example, in such embodiments, a minimal level of occupant activity may be associated with a temperature setpoint equal to the temperature ceiling minus 10% of the temperature range. By further example, in such embodiments, a median occupant activity may be associated with a temperature setpoint equal to the temperature floor plus approximately 50% of the temperature range.

In other embodiments, a user may desire the thermostat 16 to recognize particular occupant activities and learn occupant temperature preferences for each of these activities. Accordingly, in certain embodiments, the processor 112 of the thermostat 16 may enable a user to construct an activity-based temperature program using an activity learning mode. When operating in activity learning mode, the thermostat 16 may receive sensor data (e.g., from sensors 12 and/or 122), user inputs (e.g., from input devices 118), and or other data inputs 110 that define particular occupant activities as well as occupant temperature preferences for these activities. With the foregoing in mind, FIG. 13 illustrates an embodiment of a process 240 whereby the processor 112 of the thermostat 16 may determine an activity-based temperature program using activity learning mode. The process 240 illustrated in FIG. 13 begins when the processor 112 of the thermostat 16 receives (block 242) user input requesting activation of the activity learning mode of the thermostat 16. Subsequently, the processor 112 may activate (block 244) the activity learning mode of the thermostat 16.

For the embodiment of the process 240 illustrated in FIG. 13, once activity learning mode has been activated, the processor 112 may receive and store (block 246) information provided by the users, information provided by the sensors (e.g., sensors 12 and/or 122), and potentially information from other data inputs (e.g., the detection of the network traffic of a particular device on the computer network), which may be used by the processor 112 to define or characterize one or more types or degrees of occupant activity. It may be appreciated that the aforementioned activity learning mode may be implemented in a number of ways. For example, in certain embodiments, once activity learning mode has been activated, the processor 112 may initially receive and store (e.g., in the memory 114) information provided by the associated sensors (e.g., sensors 12 and/or 122), user inputs (e.g., occupant temperature preferences), and/or other data inputs. Subsequently, the processor 112 may group portions of the sensor and/or data inputs together to define generic activities (e.g., “Activity 1”, “Activity 2”, and so forth, based on statistically detectable differences in occupant activity types or degrees) paired with occupant temperature preferences received around the time of each occupant activity or in between statistically different types or degrees of occupant activity. Then, the user may subsequently provide user input to the processor 112 (e.g., via input devices 118 and/or a software user interface communicatively coupled to the thermostat 16) to provide more descriptive names (e.g., “Away”, “Sleeping”, “Cooking”, “Watching TV”, etc.) either through manual entry or by selecting names from a pre-populated list.

In other embodiments, once activity learning mode has been activated, before beginning an activity, a user may provide user input to the processor 112 (e.g., via input devices 118 and/or a software user interface communicatively coupled to the thermostat 16) naming a particular occupant activity (e.g., “Exercising”) and providing a desired setpoint temperature or temperature range for the occupant activity. Further, in certain embodiments, the user input may also inform the processor 112 that the named occupant activity is about to begin or, alternatively, an expected time and duration for the occupant activity. As such, based on this user input, the processor 112 may begin collecting sensor inputs (e.g., from sensors 12 and/or 122) and/or other data inputs 110 that may be used to define or characterize the named occupant activity. In certain embodiments, after completion of the activity, the user may provide user input to inform the processor 112 that the occupant activity is complete. Furthermore, in certain embodiments, the user may provide user input to the processor 112 to name the occupant activity and provide a setpoint temperature or temperature range for the occupant activity upon termination (rather than the onset) of the occupant activity.

Continuing through the process 240 illustrated in FIG. 13, the processor 112 of the thermostat 16 may deactivate (block 248) activity learning mode in response to user input or after a predetermined period of time (e.g., an hour, a day, a week, or a month) has passed. In certain embodiments, activity learning mode may enable the thermostat 16 to learn only one occupant activity, and, therefore, activity learning mode may be successively activated/deactivated a particular number of times in order to teach the thermostat 16 a particular number of occupant activities. In the final step of the illustrated process 240, the processor 112 may determine (block 250) an activity-based temperature program for the one or more occupant activities based on the user inputs, sensor inputs, and/or other data inputs received and stored while activity learning mode was active.

FIG. 14 illustrates an embodiment of an activity-based temperature program 260 such as may be generated via execution (e.g., one or more times) of the process 240. The illustrated embodiment of the activity-based temperature program 260 includes seven different temperature setpoints 262A-G, each of which are respectively associated with a particular occupant activity 264A-G. For example, the occupant activity 264C (e.g., “Exercising”) is associated with the temperature setpoint 262C (e.g., 60° F.). By further example, the occupant activity 264F (e.g., “Watching TV”) is associated with the temperature setpoint 262F (e.g., 70° F.). As such, it may be appreciated that the temperature setpoints 262A-G, as well as the names of the occupant activities 264A-G, may be based on user input provided to the thermostat 16 (e.g., block 246 of the process 240 illustrated in FIG. 13). It may also be appreciated that each of the occupant activities 264A-G illustrated in FIG. 14 are also associated with sensor inputs and/or data inputs received and stored by the thermostat 16 during activity learning mode (e.g., block 246 of the process 240).

Once an activity-based temperature program (e.g., activity-based temperature program 210 or 260) has been constructed, in certain embodiments, the processor 112 of the thermostat 16 may perform an embodiment of the process 280 illustrated in FIG. 15 to implement the activity-based temperature program. The illustrated process 280 begins when the processor 112 receives (block 282) user input requesting activation of an activity mode of the thermostat 16. In certain embodiments, upon activation of activity mode, the thermostat 16 may prompt the user to provide a minimum temperature (e.g., a temperature floor) and a maximum temperature (e.g., a temperature ceiling), and the processor 112 may respect these limits throughout activation of activity mode, regardless of occupant activity.

Subsequently, as illustrated in FIG. 15, the processor 112 may activate (block 284) the activity mode of the thermostat 16. In other embodiments, the thermostat 16 may automatically enter activity mode after being trained in activity learning mode (e.g., using the process 240 illustrated in FIG. 13). Once the activity mode of the thermostat 16 has been activated, the processor 112 of the thermostat 16 may detect (block 286) or predict an occupant performance of a defined activity using one or more of user input (e.g., the user informs the thermostat 16 of a particular occupant activity), sensor input (e.g., from sensors 12 and/or 122), and other data inputs 110. In certain embodiments, the processor 112 may utilize combinations of inputs (e.g., sensor input and other data inputs) to correctly detect and identify the occupant activity or occupant activity level. For example, in certain embodiments, the processor 112 may receive weak indications of occupant movement from one or more vibration, acoustic, and/or motion sensors 12 of the structure 10. In this example, these weak indications alone may be insufficient for the processor 112 to conclusively identify a defined occupant activity (e.g., rising from bed). However, in certain embodiments, the processor 112 may consider other data inputs 110 (e.g., a detected level of network activity on the computer network hosted by the router 52, activation of one or more smart appliances 132, or another suitable data input) in combination with the measurements of the sensors 12. As such, the processor 112 may determine that the weak indications from the sensors 12, when considered in combination with the other data inputs 110, are sufficient (e.g., beyond a threshold value) for the processor 112 to conclusively identify the defined occupant activity or occupant activity level.

Additionally, as set forth in block 286 of FIG. 15, the processor 112 may also predict the occurrence of a defined occupant activity or activity level based on one or more of user inputs, sensor inputs, and other data inputs. For example, as set forth above with respect to FIG. 3, in certain embodiments the processor 112 of the thermostat 16 may be configured to interact with one or more devices or systems (e.g., computer 50, cellular phone 48, and/or online resources 124) to glean information regarding future activities of the occupant. By specific example, the processor 112 of the thermostat 16 may access a schedule of the occupant (e.g., calendar, agenda, and/or to-do list management applications) stored on the computer 50 to predict when the occupant may perform one or more of the defined activities (e.g., cooking, cleaning, arriving home, waking up, and so forth). In another example, the processor 112 may access the e-mail of the occupant (e.g., stored on the cellular phone 48 or the computer 50) to determine that the occupant is hosting a party in the structure 10 at a particular time. Accordingly, the processor 112 may predict a high level of future occupant activity at the particular time of the party.

Continuing through the process 280 illustrated in FIG. 15, after detecting or predicting a defined occupant activity, the processor 112 may determine (block 290) a temperature setpoint for the HVAC system 20 based on the detected or predicted occupant activity or activity level. In certain embodiments, as set forth in FIG. 12, the processor 112 may determine a desired temperature or temperature range based on the detected or predicted level of occupant activity. In other embodiments, as set forth above with respect to FIG. 13, the user may provide the thermostat 16 with user inputs that define occupant temperatures preferences for each learned occupant activity. These occupant temperature preferences may be stored in the memory 114 of the thermostat 16 and later recalled upon detection or prediction of the occupant activity or activity level. Subsequently, the processor 112 may control the HVAC system 20 to implement (block 292) the determined temperature setpoint. As indicated by the arrow 294, the steps illustrated in blocks 286, 290, and 292 may be repeated (e.g., continually or intermittently) to detect subsequent activities of the occupant. Further, in certain embodiments, at some point during the execution of blocks 286, 290, or 292, the processor 112 may receive (block 296) user input requesting deactivation of activity mode, and, in response, the processor 112 may deactivate (block 298) the activity mode of the thermostat 16.

As discussed in detail below, FIGS. 16-19 illustrate a number of examples describing how embodiments of the thermostat 16 may implement a time-based temperature program (e.g., the temperature setpoint schedule 170) with exceptions based on predicted or determined occupant activity, implement an activity-based temperature program (e.g., the activity-based temperature programs 210 or 260) based on a predicted or determined occupant activity or activity level, and implement a hybrid temperature program that is a combination of both a time-based temperature program and an activity-based temperature program. Accordingly, it may be appreciated that the examples illustrated in FIGS. 16-19 are merely provided as examples and are not intended to limit the scope of the present approach.

EXAMPLE 1 Activity-Based Temperature Program Based on a Level of Activity of the Occupant

FIG. 16 is a timeline 300 illustrating an example in which the thermostat 16 (e.g., in activity mode, as discussed in FIG. 15) implements the embodiment of the activity-based temperature program 210 set forth in FIG. 12. That is, the timeline 300 illustrates the activities 302 of the processor 112 of the thermostat 16 in response to a level of activity associated with each of the occupant activities 304. The example illustrated in the timeline 300 begins between 2:30 PM and 5:30 PM while the occupant is away at work (as indicated by block 306). Accordingly, based on data from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110, the processor 112 of the thermostat 16 may determine (block 308) that no occupant activity is occurring in a portion of the structure 10 and may implement the corresponding temperature setpoint 212A, which has an associated temperature of 55° F. In certain embodiments, the temperature associated with the temperature setpoint 212A may represent a temperature floor for the activity-based temperature program 210 and/or the activity mode that may be based on user input.

The timeline 300 illustrated in FIG. 16 continues as the occupant arrives home and immediately begins cooking (as indicated by block 310) at 5:30 PM. Accordingly, the processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. For example, acoustic sensors 12 may detect noises generated by the movement of pots and pans within the kitchen, vibration sensors 12 may detect vibrations generated by movement of the occupant in the kitchen, temperature sensors 12 may detect heating of the kitchen by the range 60, and/or flow sensors 12 may detect activity in the plumbing or natural gas system of the structure 10. As such, the processor 112 may determine (block 312) a median level of occupant activity is occurring in the structure 10 and may accordingly implement the temperature setpoint 212C, which has an associated temperature of 70° F.

The illustrated timeline 300 continues as the occupant begins exercising (as indicated by block 314) at 8:00 PM. Accordingly, the processor 112 of the thermostat 16 may receive measurements from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. For example, motion sensors 12 and/or 122 may detect motion from the exercise of the occupant, acoustic sensors 12 and/or 122 may detect noises generated by the exercise of occupant, vibration sensors 12 and/or 122 may detect vibrations generated by movement of the occupant, temperature sensors 12 and/or 122 may detect heating of one or more rooms the structure 10, and/or IR sensors 12 and/or 122 may detect an increased temperature of the occupant. As such, the processor 112 may determine (block 316) that a high level of occupant activity is occurring and may implement the temperature setpoint 212D, which has an associated temperature of 65° F.

Then, as illustrated in FIG. 16, the occupant begins watching television (as indicated by block 318) at 10:30 PM. Accordingly, the processor 112 of the thermostat 16 may receive measurements from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. For example, acoustic sensors 12 and/or 122 may detect noises generated by the television 47, visible light sensors 12 and/or 122 may detect light generated by the television 47, EMI sensors 12 and/or 122 may detect the activation or operation of the television 47, and/or wireless communication sensors 12 and/or 122 may detect an increase in wireless communication near the television 47. By specific example, in certain embodiments, the thermostat 16 may detect the television 47 connecting to and/or communicating over the computer network hosted by the router 52. As such, the processor 112 may determine (block 320) that a minimal level of occupant activity is occurring and may, accordingly, implement the temperature setpoint 212B, which has an associated temperature of 75° F. Further, the processor 112 of the thermostat 16 may continue implementing the temperature setpoint 212 until the processor 112 determines that the occupant activity level has once again changed. For example, when the occupant falls asleep (as indicated by block 322) around 12:30 AM, the processor 112 may determine that a minimal level of occupant activity is still occurring and may, therefore, continue implementing the temperature setpoint 212B.

EXAMPLE 2 Activity-Based Temperature Program Based on Defined Activities of the Occupant

FIG. 17 is a timeline 330 illustrating an example in which the thermostat 16 (e.g., in activity mode, as discussed in FIG. 15) implements an embodiment of the activity-based temperature program 260 set forth in FIG. 14. In particular, the timeline 330 illustrates the activities 302 of the processor 112 of the thermostat 16 in response to detected occupant activities 304, which happen to be the same occupant activities as illustrated in FIG. 16. The example illustrated in the timeline 330 begins between 2:30 PM and 5:30 PM while the occupant is away at work (as indicated by block 306). Accordingly, based on data from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110, the processor 112 of the thermostat 16 may determine (block 332) that the defined occupant activity “Away” 264A is occurring and may implement the corresponding temperature setpoint 262A, which has an associated temperature of 55° F.

The timeline 330 illustrated in FIG. 17 continues as the occupant arrives home and immediately begins cooking (as indicated by block 310) at 5:30 PM. Accordingly, the processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. As such, the processor 112 may determine (block 334) that a different defined occupant activity, “Cooking or Cleaning” 264D, is occurring in the structure 10 and may accordingly implement the corresponding temperature setpoint 262D, which has an associated temperature of 65° F. Then, as the occupant begins exercising (as indicated by block 314) at 8:00 PM, the processor 112 of the thermostat 16 may receive measurements from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. As such, the processor 112 may determine (block 336) that a different defined occupant activity, “Exercising” 264C, is occurring, and may accordingly implement the corresponding temperature setpoint 262C, which has an associated temperature of 60° F.

Then, as illustrated in FIG. 17, the occupant begins watching television (as indicated by block 318) at 10:30 PM. Accordingly, the processor 112 of the thermostat 16 may receive measurements from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. As such, the processor 112 may determine (block 338) that a different defined occupant activity, “Watching TV” 264F, is occurring and may implement the corresponding temperature setpoint 262F, which has an associated temperature of 70° F. Additionally, unlike the example discussed in FIG. 16, when the occupant falls asleep around 12:30 AM (as indicated by block 322), the processor 112 may determine (block 340) that the defined occupant activity “Sleeping” 264B is occurring and may, therefore, implement the corresponding temperature setpoint 262B, which has an associated temperature of 60° F.

EXAMPLE 3 Time-based Temperature Program Including Exceptions for Occupant Activity

FIG. 18 is a timeline 350 illustrating an example in which the thermostat 16 implements a time-based temperature program (e.g., a temperature setpoint schedule) that provides for exceptions based on changes in occupant activity. In particular, for the example illustrated in FIG. 18, the processor 112 of the thermostat 16 may initially be implementing a temperature setpoint schedule 352, a portion of which is illustrated on the timeline 350. Specifically, the illustrated portion of the temperature setpoint schedule 352 includes two temperature setpoints: temperature setpoint 176A and temperature setpoint 176B. Temperature setpoint 176A has an associated time of 5:00 AM and an associated temperature of 68° F., while temperature setpoint 176B has an associated time of 7:00 AM and an associated temperature of 60° F. Additionally, the timeline 350 also illustrates exception time windows 354 that are associated with temperature setpoints of the temperature setpoint schedule 352. In particular, the temperature setpoint 176A is associated with the exception time window 356 and the temperature setpoint 176B is associated with the exception time window 358.

As illustrated in FIG. 18, the exception time window 356 begins an hour and a half before the 5:00 AM time associated with the temperature setpoint 176A. As such, when the processor 112 of the thermostat 16 determines that a certain change in occupant activity type or degree is occurring within the exception time window 356, the processor 112 may respond by implementing of the temperature setpoint 176A that is associated with the exception time window 356. By specific example, in certain embodiments, the exception time window 356 illustrated in FIG. 18 is configured to respond to a particular change in occupant activity level (e.g., a greater than minimal occupant activity level or a significant increase in the degree of occupant activity) to trigger the early implementation of the temperature setpoint 176A. In other embodiments, the exception time window 356 may be configured to respond to a particular defined occupant activity (e.g., occupant activity “Showering and Dressing” 264G, as set forth in FIG. 14) to trigger the early implementation of the temperature setpoint 176A.

The exception time window 358 illustrated in FIG. 18 begins an hour and a half before and concludes an hour and a half after the 7:00 AM time associated with the temperature setpoint 176B. Furthermore, when the processor 112 of the thermostat 16 determines that a certain occupant activity or activity level is occurring within the exception time window 358, the processor 112 may respond with early implementation of the temperature setpoint 176B that is associated with the exception time window 358. By specific example, in certain embodiments, the exception time window 358 illustrated in FIG. 18 may be configured to respond to a particular changes in occupant activity level (e.g., no occupant activity or a significant decrease in the degree of occupant activity) to trigger the early implementation of the temperature setpoint 176B. In other embodiments, the exception time window 358 may be configured to respond to a particular defined occupant activity (e.g., occupant activity “Away” 264A, as set forth in FIG. 14) to trigger the early implementation of the temperature setpoint 176B.

With the foregoing in mind, the timeline 350 also includes the activities 360 of the occupant as well as activities 362 of the thermostat 16. For the example illustrated in FIG. 18, the timeline 350 begins with the occupant sleeping (block 364), during which time the thermostat 16 may implement a temperature setpoint corresponding to a temperature floor (e.g., 55° F.). At 4:00 AM, the occupant arises from bed and begins preparing (block 366) for work. Accordingly, the processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the changing levels activity of the occupant. As mentioned above, the temperature setpoint 176A has an associated time of 5:00 AM, but also has an associated exception time window 356 that begins at 3:30 AM. As such, at or near 4:00 AM the processor 112 of the thermostat 16 may determine (block 368) that occupant activity 366 is occurring during the exception time window 356 and immediately implement the corresponding temperature setpoint 176A. In certain embodiments, instead of implementing the temperature setpoint 176A, the processor 112 of the thermostat 16 may implement the exception temperature setpoint 369 (e.g., having the same associated temperature as the temperature setpoint 176A but with an earlier associated time) upon detection of the appropriate occupant activity or activity level. Further, as set forth above, in certain embodiments, after multiple occurrences of the exception temperature setpoint 369, the processor 112 may modify the temperature setpoint schedule 352 to remove the original temperature setpoint 176A and to add the exception temperature setpoint 369. In other embodiments, the temperature setpoint 176A may be modified to be associated with the exception time after multiple occurrences of the exception.

The timeline 350 illustrated in FIG. 18 continues with the occupant leaving for work, as illustrated by the “Away” block 370, about 5:45 AM. Accordingly, the processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. As mentioned above, the temperature setpoint 176B has an associated time of 7:00 AM, but also has an associated exception time window 358 that begins at 5:30 AM. As such, at or near 5:45 AM the processor 112 of the thermostat 16 may determine (block 372) that occupant activity “Away” 370 is occurring (e.g., that occupant activity has ceased or the degree of occupant activity has significantly decreased) during the exception time window 358 and immediately implement the corresponding temperature setpoint 176B. In certain embodiments, as illustrated in FIG. 18, instead of implementing the temperature setpoint 176B, the processor 112 of the thermostat 16 may implement the exception temperature setpoint 373 (e.g., having the same associated temperature as the temperature setpoint 176B but with an earlier associated time) upon detection of the appropriate occupant activity or activity level.

By specific example, in certain embodiments, the processor 112 may determine that there is a lack of occupant activity within portions of the structure 10 (e.g., using sensors 12 and 122 and/or other data inputs 110) during the exception window 358, which may trigger implementation of the exception temperature setpoint 373. Further, as set forth above, in certain embodiments, after one or more occurrences of the exception temperature setpoint 373, the processor 112 may modify the temperature setpoint schedule 352 to remove the original temperature setpoint 176B and to add the exception temperature setpoint 373, or may modify the original temperature setpoint 176B to be associated with the exception time.

EXAMPLE 4 A Hybrid Temperature Program Including Both Time-Based Temperature Setpoints (with Exceptions for Occupant Activity) and Activity-Based Temperature Setpoints

FIG. 19 is a timeline 380 illustrating an example in which the thermostat 16 implements an embodiment of a hybrid temperature program having both time-based and activity-based temperature setpoints. In particular, for the example illustrated in FIG. 19, the processor 112 of the thermostat 16 may initially be implementing a temperature setpoint schedule 382 includes two time-based temperature setpoints: temperature setpoint 176A and temperature setpoint 176B. Temperature setpoint 176A has an associated time of 5:00 PM and an associated temperature of 68° F., while temperature setpoint 176B has an associated time of 11:00 PM and an associated temperature of 55° F. Additionally, the temperature setpoint 176A is associated with the illustrated exception time window 386 and the temperature setpoint 176B is associated with the illustrated exception time window 388.

The exception time window 386 is asymmetric, beginning an hour and a half before and extending an hour after the 5:00 PM time associated with the temperature setpoint 176A. As such, if the processor 112 of the thermostat 16 predicts or determines an early or a late change in the type or degree of occupant activity within the exception time window 386 (or determines an early or a late achievement of an occupant activity level within the exception time window 386), the processor 112 may implement the temperature setpoint 176A at an appropriate time (e.g., before or after the 5:00 PM time associated with the temperature setpoint 176A) based on the occupant activity. By specific example, in certain embodiments, the exception time window 386 illustrated in FIG. 19 is configured to respond to a particular change in the occupant activity level (e.g., a significant increase in the degree of occupant activity) to trigger early or late implementation of the temperature setpoint 176A. In other embodiments, during the exception time window 386, the processor 112 may be configured to respond to a particular defined occupant activity (e.g., occupant activity “Arriving Home” 264E, as set forth in FIG. 14) to trigger early or late implementation of the temperature setpoint 176A. By specific example, in certain embodiments, the processor 112 may be configured to predict future occupant activity based, for example, on occupant schedule information gleaned from certain data inputs 110 (e.g., cellular phone 48, computer 50, online resources 124 discussed in FIG. 3) to predict when the occupant may be expected to arrive at the structure 10.

As illustrated in FIG. 19, the exception time window 388 extends three and a half hours after the 11:00 PM time associated with the temperature setpoint 176B. Furthermore, like the exception time window 188 discussed above with respect to FIG. 10, the exception time window 388 is a statistical exception time window. As such, the darker region 390 of the exception time window 388 indicates the portion of the exception time window 388 when certain predicted or detected occupant activities may be given higher weight to delay implementation of the associated temperature setpoint 176B. For example, in certain embodiments, until the processor 112 of the thermostat 16 determines that a certain change in occupant activity (e.g., a change to “Sleeping” 414) or a change in occupant activity level (e.g., a change to a minimal occupant activity level) is occurring within the exception time window 388, the processor 112 may not implement the corresponding temperature setpoint 176B. In other embodiments, the processor 112 of the thermostat 16 may delay implementation of the temperature setpoint 176B within the exception time window 388 until after a particular occupant activity (e.g., “Watching TV” 412) has ceased or after the occupant activity level drops below a particular threshold (e.g., a change to a median level of occupant activity).

Additionally, as illustrated in FIG. 19, the timeline 380 also includes activity-based temperature setpoints 392 and 394. As set forth above with respect to FIG. 14, the activity-based temperature setpoints 392 and 394 are respectively associated with defined occupant activities “Exercising” 264C and “Watching TV” 264F and are respectively associated with temperatures of 60° F. and 70° F. As such, for this example, it may be appreciated that the temperature setpoints 392 and 394 are activity-based (e.g., not time-based temperature setpoints like temperature setpoints 176A and 176B), and these occupant activities and associated temperature preferences may be defined by the user using the activity learning mode of the thermostat 16 (e.g., the process 240 illustrated in FIG. 13).

With the foregoing in mind, the timeline 380 illustrated in FIG. 19 also includes activities 396 of the occupant as well as activities 398 of the processor 112 of the thermostat 16. The illustrated timeline 380 begins with the occupant away, as indicated by block 400. Throughout the exception time window 386, the processor 112 for the thermostat 16 may attempt to determine (or predict) when an occupant is performing (or will perform) a particular occupant activity or achieve a particular level of occupant activity that may trigger early or late implementation of the temperature setpoint 176A. For example, the processor 112 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant to determine when to implement the temperature setpoint 176A. By further example, in certain embodiments, the processor 112 may collect occupant schedule information from certain data inputs 110 (e.g., cellular phone 48, computer 50, online resources 124 discussed in FIG. 3) to determine when to implement the temperature setpoint 176A.

In the illustrated example of FIG. 19, the processor 112 determines or predicts (block 402) that the occupant has not arrived or will not arrive during the exception time window (e.g., based on a combination of data from sensors 12 and from data inputs 110). Accordingly, as set forth above, the processor 112 may delay implementing the corresponding temperature setpoint 176A until the end of the exception time window 386. That is, as mentioned above, the processor 112 may implement the temperature setpoint 176 at the end of the exception time window 386, even if the occupant has not arrived. In certain embodiments, instead of implementing the temperature setpoint 176A, the processor 112 may implement the exception temperature setpoint 404, which has the same associated temperature as the temperature setpoint 176A and a different associated time. Further, as set forth above, in certain embodiments, after one or more occurrences of the exception temperature setpoint 404, the processor 112 may modify the time-based portion of the temperature program to remove the original temperature setpoint 176 and to add the exception temperature setpoint 404.

Continuing through the timeline 380 illustrated in FIG. 19, the occupant may arrive home at 6:30 PM, as indicated by block 406. At approximately 7:20 PM, the occupant may begin exercising as indicated by block 408. The processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activity of the occupant. Accordingly, the processor 112 may determine (block 410) that a defined occupant activity (e.g., “Exercising” 264C set forth in FIG. 14) is occurring and may implement the corresponding activity-based temperature setpoint 392 (e.g., based on the temperature setpoint 262C set forth in FIG. 14).

Next in the timeline 380, at approximately 9:00 PM, the occupant may begin watching television (as indicated by block 412) until the occupant falls asleep around 1:20 AM (as indicated by block 414). Once again, the processor 112 of the thermostat 16 may receive inputs from one or more sensors (e.g., sensors 12 and/or 122) and/or other data inputs 110 regarding the activities of the occupant. Accordingly, the processor 112 may determine (block 416) that a defined occupant activity (e.g., “Watching TV” 264F set forth in FIG. 14) is occurring and may implement the corresponding activity-based temperature setpoint 394 (e.g., based on the temperature setpoint 262F set forth in FIG. 14).

Continuing through the timeline 380, at 11:00 PM the processor 112 may determine that the time associated with the time-based temperature setpoint 176B has been reached. However, since the occupant is still watching television (as indicated by block 412), the processor 112 may determine (block 418) that an occupant activity is occurring and delay implementing the corresponding temperature setpoint 176B. In certain embodiments, the processor 112 may delay implementing the temperature setpoint 176B until a particular occupant activity (e.g., “Watching TV” 412) is no longer occurring, until another particular occupant activity (e.g., “Sleeping” 414) is determined to be occurring, or until a particular level of occupant activity (e.g., a minimal occupant activity level) is achieved. In certain embodiments, instead of implementing the temperature setpoint 176B, the processor 112 may implement the exception temperature setpoint 420, which has the same associated temperature as the temperature setpoint 176B and a different associated time. Further, as set forth above, in certain embodiments, after one or more occurrences of the exception temperature setpoint 420, the processor 112 may modify the time-based portion of the temperature program to remove the original temperature setpoint 176B and to add the exception temperature setpoint 420.

One or more of the disclosed embodiments, alone or on combination, may provide one or more technical effects useful for creating or modifying a temperature program of a structure based on observed or predicted change in the types or degrees of occupant activity. Present embodiment enable a thermostat to make temporary exceptions to a time-based temperature setpoint schedule of the HVAC system based on predicted or observed changes in the types or degrees of occupant activity, as well as methods for permanently modifying the temperature setpoint schedule based on the occurrence of one or more exceptions. Additionally, present embodiments enable the creation and use of activity-based temperature programs that implement particular activity-based temperature setpoints in response to detecting or predicting particular occupant activities or changes in the type or degree of occupant activity. Accordingly, present embodiments may provide more efficient control of the HVAC system, reducing power consumption of the HVAC system, extending the life of the HVAC system, and providing an environment within the structure that may be better tuned to particular activities and preferences of the occupant. However, it should be understood that the technical effects and technical problems described in the specification are examples and are not limiting. Indeed, the disclosed embodiments may have other technical effects and/or address other technical problems.

While only certain features and embodiments of the invention have been illustrated and described, many modifications and changes may occur to those skilled in the art (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters (e.g., temperatures, pressures, etc.), mounting arrangements, use of materials, colors, orientations, etc.) without materially departing from the novel teachings and advantages of the subject matter recited in the claims. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention. Furthermore, in an effort to provide a concise description of the exemplary embodiments, all features of an actual implementation may not have been described (i.e., those unrelated to the presently contemplated best mode of carrying out the invention, or those unrelated to enabling the claimed invention). It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation specific decisions may be made. Such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure, without undue experimentation. 

1. A method, comprising: thermostatically controlling a heating, ventilation, and cooling (HVAC) system of a structure over a plurality of days according to a temperature setpoint schedule, wherein the temperature setpoint schedule comprises a plurality of temperature setpoints that each have an associated temperature and an associated time; collecting occupant activity data indicative of types or degrees of occupant activity in the structure over the plurality of days; processing the occupant activity data in conjunction with the plurality of temperature setpoints to identify a temperature setpoint of the plurality of temperature setpoints, wherein the identified temperature setpoint is associated with a statistically detectable change between a first type or degree of occupant activity occurring in the occupant activity data prior to the associated time of the identified temperature setpoint and a second type or degree of occupant activity occurring in the occupant activity data subsequent to the associated time of the identified temperature setpoint; and during a time window that includes the associated time of the identified temperature setpoint: detecting the change between the first type or degree of occupant activity and the second type or degree of occupant activity in the occupant activity data occurring at a particular time; and implementing the associated temperature of the identified temperature setpoint in response to the detected change regardless of whether the particular time is prior to, the same as, or subsequent to the associated time of the identified temperature setpoint.
 2. The method of claim 1, comprising implementing the identified temperature setpoint at the associated time on a following day or a following week after the implementing the associated temperature of the identified temperature setpoint in response to the detected change.
 3. The method of claim 1, comprising modifying the associated time of the identified temperature setpoint to be the particular time after implementing the associated temperature of the identified temperature setpoint in response to the detected change on more than one of the plurality of days.
 4. The method of claim 1, comprising generating the plurality of temperature setpoints of the temperature program, comprising: receiving a user input at a certain time requesting a certain temperature; and adding a temperature setpoint to the temperature program in response to the user input, comprising: associating the temperature setpoint with the certain time; associating the temperature setpoint with the certain temperature; and associating the temperature setpoint with the statistically detectable change between the first type or degree of occupant activity occurring in the occupant activity data prior to the certain time to the second type or degree of occupant activity occurring in the occupant activity data subsequent to the certain time.
 5. The method of claim 1, wherein the associated temperature the identified temperature setpoint is implemented prior to the associated time of the identified temperature setpoint in response to the change.
 6. The method of claim 1, wherein the associated temperature the identified temperature setpoint is implemented subsequent to the associated time of the identified temperature setpoint in response to the change.
 7. The method of claim 1, comprising implementing the associated temperature of the identified temperature setpoint at the associated time of the temperature setpoint when the change is not detected before the associated time of the temperature setpoint.
 8. The method of claim 1, comprising implementing the associated temperature of the identified temperature setpoint at an end of the time window when the change is not detected during the time window.
 9. The method of claim 1, wherein the time window extends a first fixed amount of time before the associated time of the identified temperature setpoint.
 10. The method of claim 9, wherein the time window also extends a second fixed amount of time after the associated time of the identified temperature setpoint.
 11. The method of claim 10, wherein the first fixed amount of time is equal to the second fixed amount of time.
 12. The method of claim 1, wherein detecting the change comprises giving greater weight to occupant activity data that occurs closer to the associated time of the identified temperature setpoint.
 13. The method of claim 1, wherein detecting the change comprises giving greater weight to a first piece of occupant activity data when other pieces of occupant activity data occur around the same time.
 14. The method of claim 1, wherein collecting occupant activity data comprises receiving and storing measurements from one or more sensors associated with the structure, wherein the one or more sensors comprise thermal sensors, motion sensors, infra-red (IR) sensors, light sensors, electromagnetic sensors, sound sensors, vibration sensors, gas sensors, or combinations thereof
 15. The method of claim 14, wherein the one or more sensors are disposed within a housing of a wall-mounted thermostat that is thermostatically controlling the HVAC system of the structure.
 16. The method of claim 1, wherein collecting occupant activity data comprises receiving and storing a measurement of one or more wireless signals within the structure.
 17. The method of claim 1, wherein collecting occupant activity data comprises receiving and storing at least a portion of a schedule, a calendar, an agenda, an itinerary, a scheduled alarm, a text message, or an email message of an occupant of the structure from a computer or a cellular phone of the occupant.
 18. The method of claim 1, wherein collecting occupant activity data comprises receiving and storing a measurement of network traffic of a computer, a cellular phone, a television, video game console, or streaming media device communicating on a computer network of the structure.
 19. A method, comprising: thermostatically controlling a heating, ventilation, and cooling (HVAC) system of a structure over a period of time according to a temperature program comprising a plurality of temperature setpoints; collecting occupant activity data describing occupant activity types or degrees over the period of time, wherein the period of time is divided into a plurality of time windows that each begin at an occurrence of a statistically different occupant activity type or degree in the occupant activity data; processing the occupant activity data in conjunction with the plurality of temperature setpoints to identify a temperature setpoint of the plurality of temperature setpoints, wherein the identified temperature setpoint has an associated temperature, an associated time, and an associated time window of the plurality of time windows that includes the associated time; during the associated time window of the identified temperature setpoint: detecting a change from a first type or degree of occupant activity to a statistically different second type or degree of occupant activity in the occupant activity data occurring at a particular time; and implementing the associated temperature of the identified temperature setpoint in response to the detected change regardless of whether the particular time is prior to, the same as, or subsequent to the associated time of the identified temperature setpoint.
 20. The method of claim 19, comprising generating the plurality of temperature setpoints of the temperature program, comprising: receiving a user input requesting a particular temperature at a particular time within a particular time window of the plurality of time windows; adding a temperature setpoint to the temperature program, comprising: associating the temperature setpoint with the particular time; associating the temperature setpoint with the particular temperature; and associating the temperature setpoint with the particular time window.
 21. The method of claim 19, comprising implementing the associated temperature of the identified temperature setpoint at the associated time of the temperature setpoint when the change is not detected before the associated time of the temperature setpoint.
 22. The method of claim 19, wherein the associated time window of the identified temperature setpoint extends a first fixed amount of time before the associated time of the identified temperature setpoint.
 23. The method of claim 22, wherein the associated time window of the identified temperature setpoint also extends a second fixed amount of time after the associated time of the identified temperature setpoint.
 24. The method of claim 23, wherein the first fixed amount of time is equal to the second fixed amount of time.
 25. The method of claim 19, wherein collecting occupant activity data comprises receiving and storing measurements from one or more sensors associated with the structure, wherein the one or more sensors comprise thermal sensors, motion sensors, infra-red (IR) sensors, light sensors, electromagnetic sensors, sound sensors, vibration sensors, gas sensors, or combinations thereof
 26. The method of claim 25, wherein the one or more sensors are disposed within a housing of a wall-mounted thermostat that is thermostatically controlling the HVAC system of the structure.
 27. The method of claim 19, wherein collecting occupant activity data comprises receiving and storing at least a portion of a schedule, a calendar, an agenda, an itinerary, a scheduled alarm, a text message, or an email message of an occupant of the structure from a computer or a cellular phone of the occupant.
 28. The method of claim 19, wherein collecting occupant activity data comprises receiving and storing a measurement of network traffic of a computer, a cellular phone, a television, video game console, or streaming media device communicating on a computer network of the structure.
 29. A method, comprising: thermostatically controlling a heating, ventilation, and cooling (HVAC) system of a structure according to a temperature program comprising a plurality of occupant activity-based temperature setpoints, wherein each occupant activity-based temperature setpoint is associated with a temperature and with a change between a first type or degree of occupant activity and a statistically different second type or degree of occupant activity; collecting occupant activity data describing occupant activity types or degrees; detecting, in the occupant activity data, the change from the first type or degree of occupant activity to the second type or degree of occupant activity; and implementing the temperature associated with the occupant activity-based temperature setpoint responsive to the detected change regardless of a current time.
 30. The method of claim 29, comprising generating the plurality of occupant activity-based temperature setpoints of the temperature program, comprising: receiving a user input requesting a particular temperature at a particular time; identifying, in the occupant activity data, the change from the first type or degree of occupant activity to the statistically different second type or degree of occupant activity around the particular time; adding an occupant activity-based temperature setpoint to the temperature program, comprising: associating the occupant activity-based temperature setpoint with the particular temperature; and associating the occupant activity-based temperature setpoint with the change between the first type or degree of occupant activity and the statistically different second type or degree of occupant activity.
 31. The method of claim 29, wherein collecting occupant activity data comprises receiving and storing measurements from one or more sensors associated with the structure, wherein the one or more sensors comprise thermal sensors, motion sensors, infra-red (IR) sensors, light sensors, electromagnetic sensors, sound sensors, vibration sensors, gas sensors, or combinations thereof
 32. The method of claim 31, wherein the one or more sensors are disposed within a housing of a wall-mounted thermostat that is thermostatically controlling the HVAC system of the structure.
 33. The method of claim 29, wherein the temperature program comprises a time-based temperature setpoint, and comprising thermostatically controlling the HVAC system to implement a temperature associated with the time-based temperature setpoint at a time associated with the time-based temperature setpoint.
 34. The method of claim 29, wherein the first and second degrees of occupant activity are different degrees of occupant activity of a plurality of different degrees of occupant activity, and wherein the plurality of different degrees of occupant activity comprises: no degree of occupant activity, a minimal degree of occupant activity, a median degree of occupant activity, and a high degree of occupant activity, and wherein each of the plurality of different degrees of occupant activity are statistically different in the occupant activity data. 